#include<bits/stdc++.h>
#define int long long
using namespace std;
const int inf=2e18+9;
int n,m,k,a[111],p[111][111],dp[111][111][111];
inline int dfs(int i,int j,int f){
if(f>k)return inf;
if(i==n)return (f==k?0:inf);
if(~dp[i][j][f])return dp[i][j][f];
int ans=inf;
if(a[i])ans=dfs(i+1,a[i],f+(a[i]!=j));
else for(int c=1;c<=m;++c)ans=min(ans,p[i][c-1]+dfs(i+1,c,f+(c!=j)));
return dp[i][j][f]=ans;
}
signed main(){
cin>>n>>m>>k;memset(dp,-1,sizeof(dp));
for(int i=0;i<n;++i)cin>>a[i];
for(int i=0;i<n;++i)for(int j=0;j<m;++j)cin>>p[i][j];
cout<<(dfs(0,0,0)==inf?-1:dp[0][0][0])<<endl;
}
1006A - Adjacent Replacements | 1195C - Basketball Exercise |
1206A - Choose Two Numbers | 1438B - Valerii Against Everyone |
822A - I'm bored with life | 9A - Die Roll |
1430B - Barrels | 279B - Books |
1374B - Multiply by 2 divide by 6 | 1093B - Letters Rearranging |
1213C - Book Reading | 1468C - Berpizza |
1546B - AquaMoon and Stolen String | 1353C - Board Moves |
902A - Visiting a Friend | 299B - Ksusha the Squirrel |
1647D - Madoka and the Best School in Russia | 1208A - XORinacci |
1539B - Love Song | 22B - Bargaining Table |
1490B - Balanced Remainders | 264A - Escape from Stones |
1506A - Strange Table | 456A - Laptops |
855B - Marvolo Gaunt's Ring | 1454A - Special Permutation |
1359A - Berland Poker | 459A - Pashmak and Garden |
1327B - Princesses and Princes | 1450F - The Struggling Contestant |